﻿<p>An <em>IfcPixelTexture</em> provides a 2D image-based texture map as an explicit array of pixel values (list of <em>Pixel</em> binary attributes). In contrary to the <em>IfcImageTexture</em> the <em>IfcPixelTexture</em> holds a 2 dimensional list of pixel color
(and opacity) directly, instead of referencing to an URL.</p>

<p>The following definitions from ISO/IEC 19775-1 X3D Architecture and base components (<a href="http://www.web3d.org/x3d/specifications/">X3D Specification</a>) apply:</p>
<ul style="list-style-type:disk;font-size:smaller">
<li>The PixelTexture node defines a 2D image-based texture map as an explicit array of pixel values (image field) and parameters controlling tiling repetition of the texture onto geometry.</li>
<li>Texture maps are defined in a 2D coordinate system (s, t) that ranges from 0.0 to 1.0 in both directions. The bottom edge of the pixel image corresponds to the S-axis of the texture map, and left edge of the pixel image corresponds to the T-axis of the texture map. The lower-left pixel of the pixel image corresponds to s=0.0, t=0.0, and the top-right pixel of the image corresponds to s = 1.0, t = 1.0.</li>
<li>The Image field specifies a single uncompressed 2-dimensional pixel image. Image fields contain three integers representing the width, height and number of components in the image, followed by width&times;height hexadecimal values representing the pixels in the image. Pixel values are limited to 256 levels of intensity (that is, 0x00-0xFF hexadecimal).
<ol>
<li>A one-component image specifies one-byte hexadecimal value representing the intensity of the image. For example, 0xFF is full intensity in hexadecimal (255 in decimal), 0x00 is no intensity (0 in decimal).</li>
<li>A two-component image specifies the intensity in the first
(high) byte and the alpha opacity in the second (low) byte.</li>
<li>Pixels in a three-component image specify the red component in the first (high) byte, followed by the green and blue components (for example, 0xFF0000 is red, 0x00FF00 is green, 0x0000FF is blue).</li>
<li>Four-component images specify the alpha opacity byte after red/green/blue (e.g., 0x0000FF80 is semi-transparent blue). A value of 00 is completely transparent, FF is completely opaque, 80 is semi-transparent.</li>
</ol>
</li>
<li style="list-style: none; display: inline"><font size="-1">Note that alpha equals (1.0 -transparency), if alpha and transparency each range from 0.0 to 1.0.</font></li>
</ul>

<blockquote class="history">
HISTORY&nbsp; New entity in IFC2x2.
</blockquote>